<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TTMath: ttmathtypes.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="ttmath_logo_for_doxygen_doc.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">TTMath
   &#160;<span id="projectnumber">0.9.4_prerelease_2019-07-31</span>
   </div>
   <div id="projectbrief">&nbsp;C++ bignum library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_c795c2b5194dedc91b1c73ff993ae7e2.html">ttmath</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">ttmathtypes.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>constants used in the library  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdexcept&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ttmathtypes.h:</div>
<div class="dyncontent">
<div class="center"><img src="ttmathtypes_8h__incl.png" border="0" usemap="#ttmathtypes_8h" alt=""/></div>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="ttmathtypes_8h__dep__incl.png" border="0" usemap="#ttmathtypes_8hdep" alt=""/></div>
</div>
</div>
<p><a href="ttmathtypes_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structttmath_1_1_conv.html">ttmath::Conv</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classttmath_1_1_stop_calculating.html">ttmath::StopCalculating</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classttmath_1_1_exception_info.html">ttmath::ExceptionInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classttmath_1_1_reference_error.html">ttmath::ReferenceError</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classttmath_1_1_runtime_error.html">ttmath::RuntimeError</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacettmath"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacettmath.html">ttmath</a></td></tr>
<tr class="memdesc:namespacettmath"><td class="mdescLeft">&#160;</td><td class="mdescRight">a namespace for the TTMath library <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a4992d1bf10a809e60ee820457837c76c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a4992d1bf10a809e60ee820457837c76c">TTMATH_MAJOR_VER</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a4992d1bf10a809e60ee820457837c76c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2351ae0bbd6438a2bf55cb116108af8e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a2351ae0bbd6438a2bf55cb116108af8e">TTMATH_MINOR_VER</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:a2351ae0bbd6438a2bf55cb116108af8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44886b1ff571f2933594c4f3324028f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a44886b1ff571f2933594c4f3324028f5">TTMATH_REVISION_VER</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:a44886b1ff571f2933594c4f3324028f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55e414441acdb08d9ecd553a42bab65d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a55e414441acdb08d9ecd553a42bab65d">TTMATH_PRERELEASE_VER</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a55e414441acdb08d9ecd553a42bab65d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba5d45b33da1558ebee14a5c63199035"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#aba5d45b33da1558ebee14a5c63199035">TTMATH_NOASM</a></td></tr>
<tr class="separator:aba5d45b33da1558ebee14a5c63199035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba5d45b33da1558ebee14a5c63199035"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#aba5d45b33da1558ebee14a5c63199035">TTMATH_NOASM</a></td></tr>
<tr class="separator:aba5d45b33da1558ebee14a5c63199035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef936ab7a0d7f0c34a9a794b3072cf6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#aef936ab7a0d7f0c34a9a794b3072cf6a">TTMATH_BITS_PER_UINT</a>&#160;&#160;&#160;64ul</td></tr>
<tr class="separator:aef936ab7a0d7f0c34a9a794b3072cf6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ccaf279c13b1d747ef8c4690d84b5dd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a0ccaf279c13b1d747ef8c4690d84b5dd">TTMATH_UINT_HIGHEST_BIT</a>&#160;&#160;&#160;9223372036854775808ul</td></tr>
<tr class="separator:a0ccaf279c13b1d747ef8c4690d84b5dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3af4b841f70a529a150c820780e1eb40"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a3af4b841f70a529a150c820780e1eb40">TTMATH_UINT_MAX_VALUE</a>&#160;&#160;&#160;18446744073709551615ul</td></tr>
<tr class="separator:a3af4b841f70a529a150c820780e1eb40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7022271658d24d9da02c1f01be16bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a0a7022271658d24d9da02c1f01be16bc">TTMATH_BUILTIN_VARIABLES_SIZE</a>&#160;&#160;&#160;128ul</td></tr>
<tr class="separator:a0a7022271658d24d9da02c1f01be16bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afda6fd96d6a33c25f9b0dd86ca01a4de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#afda6fd96d6a33c25f9b0dd86ca01a4de">TTMATH_BITS</a>(min_bits)&#160;&#160;&#160;((min_bits-1)/64 + 1)</td></tr>
<tr class="separator:afda6fd96d6a33c25f9b0dd86ca01a4de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a26c74e34f27589bfceefd0f2e497a8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a3a26c74e34f27589bfceefd0f2e497a8">TTMATH_ARITHMETIC_MAX_LOOP</a>&#160;&#160;&#160;10000</td></tr>
<tr class="separator:a3a26c74e34f27589bfceefd0f2e497a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac44eea4d15434da93b77bf6a1ae86fe2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#ac44eea4d15434da93b77bf6a1ae86fe2">TTMATH_USE_KARATSUBA_MULTIPLICATION_FROM_SIZE</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:ac44eea4d15434da93b77bf6a1ae86fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a778d79adcd3e74d5e26708e7cbdcf244"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#a778d79adcd3e74d5e26708e7cbdcf244">TTMATH_GAMMA_BOUNDARY</a>&#160;&#160;&#160;2000</td></tr>
<tr class="separator:a778d79adcd3e74d5e26708e7cbdcf244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3f5e440e9fef3a6267d24d881d00084"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ttmathtypes_8h.html#aa3f5e440e9fef3a6267d24d881d00084">TTMATH_REFERENCE_ASSERT</a>(expression)</td></tr>
<tr class="separator:aa3f5e440e9fef3a6267d24d881d00084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab92b8471379b141e76268df4398bfca"><td class="memItemLeft" align="right" valign="top"><a id="aab92b8471379b141e76268df4398bfca"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TTMATH_ASSERT</b>(expression)</td></tr>
<tr class="separator:aab92b8471379b141e76268df4398bfca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fa9140ad2502ae69d1d1ab4127d123f"><td class="memItemLeft" align="right" valign="top"><a id="a1fa9140ad2502ae69d1d1ab4127d123f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TTMATH_LOG</b>(msg)</td></tr>
<tr class="separator:a1fa9140ad2502ae69d1d1ab4127d123f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47660063c4dcc32c826ee2ff38a008b5"><td class="memItemLeft" align="right" valign="top"><a id="a47660063c4dcc32c826ee2ff38a008b5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TTMATH_LOGC</b>(msg,  carry)</td></tr>
<tr class="separator:a47660063c4dcc32c826ee2ff38a008b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf47b07371fdde8ced43a740ae16814"><td class="memItemLeft" align="right" valign="top"><a id="aebf47b07371fdde8ced43a740ae16814"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TTMATH_VECTOR_LOG</b>(msg,  vector,  len)</td></tr>
<tr class="separator:aebf47b07371fdde8ced43a740ae16814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20f2bda1b7ed5379b03615bf1c859413"><td class="memItemLeft" align="right" valign="top"><a id="a20f2bda1b7ed5379b03615bf1c859413"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TTMATH_VECTOR_LOGC</b>(msg,  carry,  vector,  len)</td></tr>
<tr class="separator:a20f2bda1b7ed5379b03615bf1c859413"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a5c1fccc9761aaa3d2b6dd32c224f5dac"><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacettmath.html#a5c1fccc9761aaa3d2b6dd32c224f5dac">ttmath::uint</a></td></tr>
<tr class="separator:a5c1fccc9761aaa3d2b6dd32c224f5dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b0a5dcba29a2c7a0abc8b4403a25ac4"><td class="memItemLeft" align="right" valign="top">typedef int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacettmath.html#a4b0a5dcba29a2c7a0abc8b4403a25ac4">ttmath::sint</a></td></tr>
<tr class="separator:a4b0a5dcba29a2c7a0abc8b4403a25ac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a5c3bd12cd3d050852a60e022e5e12799"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacettmath.html#a5c3bd12cd3d050852a60e022e5e12799">ttmath::LibTypeCode</a> { <br />
&#160;&#160;<b>asm_vc_32</b> = 0, 
<b>asm_gcc_32</b>, 
<b>asm_vc_64</b>, 
<b>asm_gcc_64</b>, 
<br />
&#160;&#160;<b>no_asm_32</b>, 
<b>no_asm_64</b>
<br />
 }</td></tr>
<tr class="separator:a5c3bd12cd3d050852a60e022e5e12799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af99599ccaf4dc05cc3a74277f9579942"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacettmath.html#af99599ccaf4dc05cc3a74277f9579942">ttmath::ErrorCode</a> { <br />
&#160;&#160;<b>err_ok</b> = 0, 
<b>err_nothing_has_read</b>, 
<b>err_unknown_character</b>, 
<b>err_unexpected_final_bracket</b>, 
<br />
&#160;&#160;<b>err_stack_not_clear</b>, 
<b>err_unknown_variable</b>, 
<b>err_division_by_zero</b>, 
<b>err_interrupt</b>, 
<br />
&#160;&#160;<b>err_overflow</b>, 
<b>err_unknown_function</b>, 
<b>err_unknown_operator</b>, 
<b>err_unexpected_semicolon_operator</b>, 
<br />
&#160;&#160;<b>err_improper_amount_of_arguments</b>, 
<b>err_improper_argument</b>, 
<b>err_unexpected_end</b>, 
<b>err_internal_error</b>, 
<br />
&#160;&#160;<b>err_incorrect_name</b>, 
<b>err_incorrect_value</b>, 
<b>err_variable_exists</b>, 
<b>err_variable_loop</b>, 
<br />
&#160;&#160;<b>err_functions_loop</b>, 
<b>err_must_be_only_one_value</b>, 
<b>err_object_exists</b>, 
<b>err_unknown_object</b>, 
<br />
&#160;&#160;<b>err_still_calculating</b>, 
<b>err_in_short_form_used_function</b>, 
<b>err_percent_from</b>, 
<b>err_assignment_requires_variable</b>
<br />
 }</td></tr>
<tr class="separator:af99599ccaf4dc05cc3a74277f9579942"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>constants used in the library </p>
<p>As our library is written in header files (templates) we cannot use constants like 'const int' etc. because we should have some source files .cpp to define this variables. Only what we can have are constants defined by #define preprocessor macros.</p>
<p>All macros are preceded by TTMATH_ prefix </p>

<p class="definition">Definition in file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a3a26c74e34f27589bfceefd0f2e497a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a26c74e34f27589bfceefd0f2e497a8">&#9670;&nbsp;</a></span>TTMATH_ARITHMETIC_MAX_LOOP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_ARITHMETIC_MAX_LOOP&#160;&#160;&#160;10000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>this variable defines how many iterations are performed during some kind of calculating when we're making any long formulas (for example Taylor series)</p>
<p>it's used in ExpSurrounding0(...), LnSurrounding1(...), Sin0pi05(...), etc.</p>
<p>note! there'll not be so many iterations, iterations are stopped when there is no sense to continue calculating (for example when the result still remains unchanged after adding next series and we know that the next series are smaller than previous ones) </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00310">310</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="afda6fd96d6a33c25f9b0dd86ca01a4de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afda6fd96d6a33c25f9b0dd86ca01a4de">&#9670;&nbsp;</a></span>TTMATH_BITS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_BITS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">min_bits</td><td>)</td>
          <td>&#160;&#160;&#160;((min_bits-1)/64 + 1)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>this macro returns the number of machine words capable to hold min_bits bits e.g. <a class="el" href="ttmathtypes_8h.html#afda6fd96d6a33c25f9b0dd86ca01a4de">TTMATH_BITS(128)</a> returns 2 </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00278">278</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="aef936ab7a0d7f0c34a9a794b3072cf6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef936ab7a0d7f0c34a9a794b3072cf6a">&#9670;&nbsp;</a></span>TTMATH_BITS_PER_UINT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_BITS_PER_UINT&#160;&#160;&#160;64ul</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>on 64bit platforms we do not define ulint and slint</p>
<p>how many bits there are in the uint type </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00253">253</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a0a7022271658d24d9da02c1f01be16bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a7022271658d24d9da02c1f01be16bc">&#9670;&nbsp;</a></span>TTMATH_BUILTIN_VARIABLES_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_BUILTIN_VARIABLES_SIZE&#160;&#160;&#160;128ul</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the number of words (64bit words on 64bit platforms) which are kept in built-in variables for a Big&lt;&gt; type (these variables are defined in <a class="el" href="ttmathbig_8h.html" title="A Class for representing floating point numbers.">ttmathbig.h</a>) </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00271">271</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a778d79adcd3e74d5e26708e7cbdcf244"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a778d79adcd3e74d5e26708e7cbdcf244">&#9670;&nbsp;</a></span>TTMATH_GAMMA_BOUNDARY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_GAMMA_BOUNDARY&#160;&#160;&#160;2000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>this is a special value used when calculating the Gamma(x) function if x is greater than this value then the Gamma(x) will be calculated using some kind of series</p>
<p>don't use smaller values than about 100 </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00338">338</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a4992d1bf10a809e60ee820457837c76c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4992d1bf10a809e60ee820457837c76c">&#9670;&nbsp;</a></span>TTMATH_MAJOR_VER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_MAJOR_VER&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the major version of the library</p>
<p>the version present to the end user is constructed in this way: </p><pre class="fragment">TTMATH_MAJOR_VER.TTMATH_MINOR_VER.TTMATH_REVISION_VER.[prerelease if TTMATH_PRERELEASE_VER==1]
</pre> 
<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00073">73</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a2351ae0bbd6438a2bf55cb116108af8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2351ae0bbd6438a2bf55cb116108af8e">&#9670;&nbsp;</a></span>TTMATH_MINOR_VER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_MINOR_VER&#160;&#160;&#160;9</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the minor version of the library</p>
<p>the version present to the end user is constructed in this way: </p><pre class="fragment">TTMATH_MAJOR_VER.TTMATH_MINOR_VER.TTMATH_REVISION_VER.[prerelease if TTMATH_PRERELEASE_VER==1]
</pre> 
<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00082">82</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="aba5d45b33da1558ebee14a5c63199035"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba5d45b33da1558ebee14a5c63199035">&#9670;&nbsp;</a></span>TTMATH_NOASM <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_NOASM</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>you can define a platform explicitly by defining either TTMATH_PLATFORM32 or TTMATH_PLATFORM64 macro</p>
<p>asm version of the library is available by default only for: x86 and amd64 platforms and for Microsoft Visual and GCC compilers</p>
<p>but you can force using asm version (the same asm as for Microsoft Visual) by defining TTMATH_FORCEASM macro you have to be sure that your compiler accept such an asm format</p>
<p>x86 architecture: <b>i386</b> defined by GNU C <em>X86</em> defined by MinGW32 _M_IX86 defined by Visual Studio, Intel C/C++, Digital Mars and Watcom C/C++</p>
<p>amd64 architecture: <b>x86_64</b> defined by GNU C, CLANG (LLVM) and Sun Studio _M_X64 defined by Visual Studio</p>
<p>asm version is available only for x86 or amd64 platforms</p>
<p>another compilers than MS VC or GCC or CLANG (LLVM) by default use no asm version (CLANG defines <b>GNUC</b> too) </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00165">165</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="aba5d45b33da1558ebee14a5c63199035"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba5d45b33da1558ebee14a5c63199035">&#9670;&nbsp;</a></span>TTMATH_NOASM <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_NOASM</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>you can define a platform explicitly by defining either TTMATH_PLATFORM32 or TTMATH_PLATFORM64 macro</p>
<p>asm version of the library is available by default only for: x86 and amd64 platforms and for Microsoft Visual and GCC compilers</p>
<p>but you can force using asm version (the same asm as for Microsoft Visual) by defining TTMATH_FORCEASM macro you have to be sure that your compiler accept such an asm format</p>
<p>x86 architecture: <b>i386</b> defined by GNU C <em>X86</em> defined by MinGW32 _M_IX86 defined by Visual Studio, Intel C/C++, Digital Mars and Watcom C/C++</p>
<p>amd64 architecture: <b>x86_64</b> defined by GNU C, CLANG (LLVM) and Sun Studio _M_X64 defined by Visual Studio</p>
<p>asm version is available only for x86 or amd64 platforms</p>
<p>another compilers than MS VC or GCC or CLANG (LLVM) by default use no asm version (CLANG defines <b>GNUC</b> too) </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00165">165</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a55e414441acdb08d9ecd553a42bab65d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55e414441acdb08d9ecd553a42bab65d">&#9670;&nbsp;</a></span>TTMATH_PRERELEASE_VER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_PRERELEASE_VER&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>TTMATH_PRERELEASE_VER is either zero or one zero means that this is the release version of the library (one means something like beta)</p>
<p>the version present to the end user is constructed in this way: </p><pre class="fragment">TTMATH_MAJOR_VER.TTMATH_MINOR_VER.TTMATH_REVISION_VER.[prerelease if TTMATH_PRERELEASE_VER==1]
</pre> 
<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00102">102</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="aa3f5e440e9fef3a6267d24d881d00084"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3f5e440e9fef3a6267d24d881d00084">&#9670;&nbsp;</a></span>TTMATH_REFERENCE_ASSERT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_REFERENCE_ASSERT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">expression</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>TTMATH_DEBUG this macro enables further testing during writing your code you don't have to define it in a release mode</p>
<p>if this macro is set then macros TTMATH_ASSERT and TTMATH_REFERENCE_ASSERT are set as well and these macros can throw an exception if a condition in it is not fulfilled (look at the definition of TTMATH_ASSERT and TTMATH_REFERENCE_ASSERT)</p>
<p>TTMATH_DEBUG is set automatically if DEBUG or _DEBUG are defined </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00682">682</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a44886b1ff571f2933594c4f3324028f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44886b1ff571f2933594c4f3324028f5">&#9670;&nbsp;</a></span>TTMATH_REVISION_VER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_REVISION_VER&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the revision version of the library</p>
<p>the version present to the end user is constructed in this way: </p><pre class="fragment">TTMATH_MAJOR_VER.TTMATH_MINOR_VER.TTMATH_REVISION_VER.[prerelease if TTMATH_PRERELEASE_VER==1]
</pre> 
<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00091">91</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a0ccaf279c13b1d747ef8c4690d84b5dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ccaf279c13b1d747ef8c4690d84b5dd">&#9670;&nbsp;</a></span>TTMATH_UINT_HIGHEST_BIT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_UINT_HIGHEST_BIT&#160;&#160;&#160;9223372036854775808ul</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the mask for the highest bit in the unsigned 64bit word (2^63) </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00258">258</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="a3af4b841f70a529a150c820780e1eb40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3af4b841f70a529a150c820780e1eb40">&#9670;&nbsp;</a></span>TTMATH_UINT_MAX_VALUE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_UINT_MAX_VALUE&#160;&#160;&#160;18446744073709551615ul</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the max value of the unsigned 64bit word (2^64 - 1) (all bits equal one) </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00264">264</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
<a id="ac44eea4d15434da93b77bf6a1ae86fe2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac44eea4d15434da93b77bf6a1ae86fe2">&#9670;&nbsp;</a></span>TTMATH_USE_KARATSUBA_MULTIPLICATION_FROM_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TTMATH_USE_KARATSUBA_MULTIPLICATION_FROM_SIZE&#160;&#160;&#160;5</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>this is a limit when calculating Karatsuba multiplication if the size of a vector is smaller than TTMATH_USE_KARATSUBA_MULTIPLICATION_FROM_SIZE the Karatsuba algorithm will use standard schoolbook multiplication </p>

<p class="definition">Definition at line <a class="el" href="ttmathtypes_8h_source.html#l00326">326</a> of file <a class="el" href="ttmathtypes_8h_source.html">ttmathtypes.h</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>
